package com.javabasic.algorithm.leetcode;

import java.util.Arrays;

/**
 * @author mir.xiong
 * @version 1.0
 * @description
 * @see [324. 摆动排序 II - 力扣（LeetCode）](https://leetcode.cn/problems/wiggle-sort-ii/comments/)
 * @since Created by work on 2022/6/28 22:42
 */
public class WiggleSortII {

    /**
     * 暴力解法
     * 时间复杂度：O(n)
     * 空间复杂度：O(n)
     * 只要找出一个符合条件的摆动数组即可
     * @param nums
     */
    public void wiggleSort(int[] nums) {
        int len = nums.length;
        int[] temp = Arrays.copyOf(nums, len);
        Arrays.sort(temp);
        int tagIndex = len - 1;
        for (int i = 1; i < len; i+= 2) {
            nums[i] = temp[tagIndex--];
        }
        for (int i = 0; i < len; i+= 2) {
            nums[i] = temp[tagIndex--];
        }

        /**
         * 这种情况，不能满足中间有相同数字的情况，例如：1，1，2，2，3，3，
         */
//        tagIndex = 0;
//        for (int i = 0; i < len; i+= 2) {
//            nums[i] = temp[tagIndex++];
//        }
    }

}
